The present invention relates to computers and computer networks. In particular, this invention relates to a protocol for transferring large amounts of information between computers over a high-speed network.
A packet network ties a number of computers and terminals together for the exchange of information. These computers and terminals are also called endpoints of the network. The exchange of information between endpoints of a packet network is achieved via a "protocol." One type of protocol is the Transmission Control Protocol (TCP), which is a popular connection-oriented transport layer protocol that is used around the world. The TCP protocol offers a full duplex reliable virtual circuit end-to-end connection for transporting information between endpoints by using one or more packets, each of which comprises both control information and data.
The TCP protocol is similar to other protocols which provide virtual circuit service. Specifically, TCP divides its operation into three phases: connection setup, data transfer, and connection takedown. In a bulk data transfer, a connection spends most of its time in the data transfer phase. Therefore, it is the optimization of this phase which will have the most significant effect on end-to-end data throughput. The complexity of the TCP protocol in this phase is mostly due to the processing of control information in each and every packet within an endpoint. To wit, for each and every packet the endpoint has to adapt to the network dynamics using its flow, or congestion, control scheme, which is dependent upon each packet's control information. As a result, this processing overhead of the TCP protocol detrimentally effects the data throughput of a TCP-based packet network in a high-speed network application.
In seeking to improve the data throughput of a high-speed network that uses TCP, a variety of alternatives have been suggested in the prior art to reduce the processing overhead in TCP. For example, software modifications to TCP that "tweak the software," i.e., with the current architecture of TCP the existing software is simplified to reduce the size of the program and thereby slightly increase its performance. Another example, and one that is the easiest, although by no means necessarily the cheapest, is simply to purchase a more powerful, i.e., faster, computer system upon which to run the software that provides the TCP protocol. In contrast to this, there has been suggested implementing in hardware some of the TCP software functionality. This would entail moving some of the software functionality directly to a dedicated, high performance, piece of hardware, e.g., a TCP interface board for use in a computer. Finally, others have proposed different protocols for use in a high-speed networking environment. For example, U.S. Pat. No. 5,084,877, issued to Netravali et al. on Jan. 28, 1992, proposes a new protocol (see also, "Design and Implementation of a High Speed Transport Protocol," Netravali, A., Roome, W., and Sabnani, K., IEEE Transactions on Communications, November 1990, pp. 2010-2024). In particular, the Netravali et al. protocol, in contrast to TCP, separates the control and data information into different types of packets and creates blocks of packets. The resulting protocol both decreases the amount of processing overhead and improves its ability to perform error and flow control- thereby increasing the data throughput.